import { fileURLToPath, URL } from 'node:url'
// 下面插件的作用可以给setup语法糖的组件添加name属性起组件名称
import vueSetupExtend from 'vite-plugin-vue-setup-extend'
import { defineConfig, loadEnv } from 'vite'
import Components from 'unplugin-vue-components/vite'
import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers'
import vue from '@vitejs/plugin-vue'
// 自动导入
import AutoImport from 'unplugin-auto-import/vite'

// https://vitejs.dev/config/
export default ({ mode }) => {
  // console.log(process.cwd(), loadEnv(mode, './'))
  const config = loadEnv(mode, './')
  return defineConfig({
    server: {
      port: 8888,
      // 代理
      proxy: {
        '/api': {
          target: config.VITE_APP_URL,
          changeOrigin: true //是否允许跨域
        }
      }
    },
    plugins: [
      AutoImport({
        imports: ['vue', 'vue-router'],
        // eslint检查代码 ->  会在  ref ... 红色 报错
        // 自动生成文件->将这个根目录下 .eslintrc-auto-import.json引入到 .eslintrc.cjs中
        eslintrc: {
          enabled: true
        }
      }),
      vueSetupExtend(),
      vue(),
      Components({
        resolvers: [
          AntDesignVueResolver({
            importStyle: false // css in js
          })
        ]
      })
    ],
    resolve: {
      alias: {
        '@': fileURLToPath(new URL('./src', import.meta.url))
      }
    }
  })
}
